home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / fb386 / game / pals3 / pals3.bas next >
BASIC Source File  |  1994-11-16  |  32KB  |  739 lines

  1. 10 '---------PALS_3-------------------
  2. 20 '----------------By 竜虎 朱幻-----------
  3. 30  CLS:SCREEN@ 1:SCREEN 0:CLEAR ,30000,50000,262144:SC=0
  4. 40   VIEW (0,0)-(319,239):CD STOP:COLOR 7,0,7,4
  5. 50   VIEW_P=1:MAXX1=15:MAXY1=15:MAXX2=305:MAXY2=155
  6. 60   SYMBOL (115,105),"Plese wait...",1,1,7
  7. 70   DIM MX(320),MY(240),MZ(240)
  8. 80   DIM MST(99),MSX(99),MSY(99),MSZ(99),MMISS(99)
  9. 90   DIM OTO(2645),OTO2(14132),BSTER(15782),SEI(16752)
  10. 100   DIM BT(8)
  11. 110    LOAD@ "\pals3\DATA\SND\d1.snd",OTO
  12. 120    LOAD@ "\pals3\DATA\SND\d2.snd",OTO2
  13. 130    LOAD@ "\pals3\DATA\SND\BSTER.SND",BSTER
  14. 140    LOAD@ "\pals3\DATA\SND\SEI.SND",SEI
  15. 150    FOR I=255 TO 0 STEP -10
  16. 160       SYMBOL (115,105),"Plese wait...",1,1,[I,I,I]
  17. 170    NEXT
  18. 180    LOAD@ "\PALS3\DATA\TIF\ROGO.TIF"
  19. 190     DUSER$="\PALS3\USER"
  20. 200  ENTRY=1
  21. 210   GOSUB *読み込み
  22. 220   GOSUB *SYS確認
  23. 230   GOSUB *ENTRY
  24. 240  IF SET2(1)=1 THEN IF VIEW_P=2 THEN MAXX1=319:MAXY1=239
  25. 250  IF SET2(1)=1 THEN IF VIEW_P=2 THEN MAXX2=0  :MAXY2=0
  26. 260  IF SET2(1)=2 THEN IF VIEW_P=2 THEN MAXX1=0  :MAXY1=0
  27. 270  IF SET2(1)=2 THEN IF VIEW_P=2 THEN MAXX2=319:MAXY2=239
  28. 280  IF SET2(3)=1 THEN MT=6 ELSE MT=2
  29. 290  GOTO  *MAIN
  30. 300 *TITLE'------------------------------
  31. 310  WHILE A=0:A=PTRIG(1)
  32. 320  FOR I=0 TO 160:LINE (I,I)-(320-I,240-I),PSET,[I,I,I],B:NEXT
  33. 330  FOR I=0 TO 255 STEP 10:SYMBOL (135,90),"PALS 3",1,1,[I,I,I],,,4
  34. 340                         SYMBOL (148,110),"for",1,1,[I,I,I],,,4
  35. 350                         SYMBOL (120,130),"竜虎  朱幻",1,1,[I,I,I],,,4
  36. 360                         A=PTRIG(1):IF A=0 ELSE GOTO 620
  37. 370  NEXT
  38. 380  FOR I=0 TO 20000:A=PTRIG(1):IF A=0 ELSE GOTO 620:NEXT
  39. 390  FOR I=0 TO 180:LINE (160,120)-(320,I),PSET,[I,I,I]
  40. 400                 LINE (160,120)-(0,240-I),PSET,[I,I,I]
  41. 410                 A=PTRIG(1):IF A=0 ELSE GOTO 620
  42. 420  NEXT
  43. 430  FOR I=0 TO 240:LINE (160,120)-(320-I,240),PSET,[I,I,I]
  44. 440                 LINE (160,120)-(I,0),PSET,[I,I,I]
  45. 450                 A=PTRIG(1):IF A=0 ELSE GOTO 620
  46. 460  NEXT
  47. 470  FOR I=0 TO 255 STEP 2:CONNECT (160,119-I)-(161+I,120)-(160,121+I)-(159-I,120)-(160,119-I),[I,I,I],PSET:NEXT
  48. 480  FOR I=0 TO 255 STEP 10:SYMBOL (80,90),"RS SOFT",1.5!,1,[I,I,I]
  49. 490  SYMBOL (65,130),"PRESENTS",1.5!,1,[I,I,I]
  50. 500  A=PTRIG(1):IF A=0 ELSE GOTO 620
  51. 510  NEXT
  52. 520  FOR I=0 TO 30000:A=PTRIG(1):IF A=0 ELSE GOTO 620:NEXT
  53. 530  FOR I=0 TO 240:C=-120+I:IF C<0 THEN C=0
  54. 540   LINE (0,0+I)-(320,0+I),PSET,[C,C,C+50]
  55. 550   A=PTRIG(1):IF A=0 ELSE GOTO 620
  56. 560  NEXT
  57. 570  FOR I=1 TO 70
  58. 580   CIRCLE (160,120),70-I,[130-I,130-I,130+I],,,,F,PSET,7
  59. 590   A=PTRIG(1):IF A=0 ELSE GOTO 620
  60. 600  NEXT:WAIT 100
  61. 610 A=1:WEND
  62. 620 CLS 1:GOSUB *WINCLS
  63. 630  FOR A=1 TO 5
  64. 640   SCREEN 1,0,3,1
  65. 650    IF A=1 THEN LOAD@ "\pals3\DATA\TIF\OPEN01.TIF",(70,30)
  66. 660    IF A=2 THEN LOAD@ "\PALS3\DATA\TIF\OPEN02.TIF",(70,30)
  67. 670    IF A=3 THEN LOAD@ "\PALS3\DATA\TIF\OPEN03.TIF",(70,30)
  68. 680    IF A=4 THEN LOAD@ "\PALS3\DATA\TIF\OPEN04.TIF"
  69. 690    IF A=5 THEN LOAD@ "\PALS3\DATA\TIF\OPEN05.TIF",(0,20)
  70. 700   SCREEN 1,1,3,1:COLOR 7,1,7,4
  71. 710   IF A=1 THEN 
  72. 720    MESE1$="AD 2190年、すでに宇宙では、、、"
  73. 730    MESE2$="PALSによって、戦争は停滞し、、"
  74. 740    MESE3$="長い戦争により、富を得る者も現れてきた。"
  75. 750   ELSE IF A=2 THEN 
  76. 760    MESE1$="時を経て、PALSの性能も一新され、"
  77. 770    MESE2$="腕のない者は、消え去る運命にあった。"
  78. 780    MESE3$="しかし、宇宙は、戦争に疲れ果てていた。"
  79. 790   ELSE IF A=3 THEN 
  80. 800    MESE1$="そして、「PALS WAR」は、終決した。"
  81. 810    MESE2$="しかし、戦争の名残は消えはしなかった。"
  82. 820    MESE3$="各地で、操者達は一斉に名乗りを上げた。"
  83. 830   ELSE IF A=4 THEN 
  84. 840    MESE1$=""
  85. 850    MESE2$="       企画 ・ 制作 : 竜虎 朱幻"
  86. 860    MESE3$=""
  87. 870   ELSE IF A=5 THEN 
  88. 880    MESE1$="   再び、、宇宙は、、、"
  89. 890    MESE2$="          闘争の歴史を、、"
  90. 900    MESE3$="              繰り返すことになった!!"
  91. 910   ENDIF
  92. 920  *KAKU
  93. 930   SYMBOL(15,330),MESE1$,2,2,7,,,8:WAIT 150
  94. 940   SYMBOL(15,380),MESE2$,2,2,7,,,8:WAIT 150
  95. 950   SYMBOL(15,430),MESE3$,2,2,7,,,8:WAIT 300
  96. 960   COLOR 7,0,7,4:CLS
  97. 970  NEXT:RETURN
  98. 980 *MAIN'==============================
  99. 990  RANDOMIZE TIME:CLS:SCREEN 0:SCREEN@ 1:COLOR 7,0,7,4
  100. 1000  GOSUB *UNIT:GOSUB *WAKUSEI
  101. 1010  N=6:TS%=3:EG=0:BT=BHT(B1):BTN=0:W=0
  102. 1020  WHILE BTN=0
  103. 1030  SCREEN 0:SCREEN@ 1:COLOR 7,0,7,4
  104. 1040  GOSUB *WINCLS2:LOAD@ "\pals3\DATA\tif\open00.tif"
  105. 1050  BT=0:R=0:W=0
  106. 1060    COLOR 7,1,7,4
  107. 1070     SYMBOL(210,100),"[[試作版]]",1,1,7,,,9
  108. 1071     SYMBOL(105,223),"RS SOFT in 1994",1,1,7,,,9
  109. 1080    COLOR 7,0,7,4
  110. 1090    SYMBOL(65,200),"終了するときは[ENTRY]の[EXIT]で、",.8!,.8!,7,,,0
  111. 1100   GOSUB *PAD:IF BTN1=4 THEN BTN=1
  112. 1110   IF R=0 THEN SYMBOL(100,150),"SELECT = ENTRY",1,1,4,,,11
  113. 1120   IF R=0 THEN SYMBOL(100,170),"RUN    = START",1,1,4,,,11
  114. 1130   IF R=1 THEN SYMBOL(100,150),"SELECT = ENTRY",1,1,3,,,11
  115. 1140   IF R=1 THEN SYMBOL(100,170),"RUN    = START",1,1,3,,,11
  116. 1150   IF BTN1=4 THEN BTN=1:GOTO 1240
  117. 1160   IF BTN1=8 THEN
  118. 1170     GOSUB *ENTRY
  119. 1180     IF SET2(3)=2 THEN *VS
  120. 1190     LOAD@ "\pals3\data\tif\open00.tif"
  121. 1200     GOTO 1050
  122. 1210   ENDIF
  123. 1220   R=R+1:IF R>1 THEN R=0
  124. 1230   W=W+1:IF W=30 THEN GOSUB *TITLE ELSE 1100
  125. 1240  WEND
  126. 1250   SCREEN 0:CLS
  127. 1260   GOSUB *読み込み2
  128. 1270 *SET_PLAYER'----------------------
  129. 1280  LOAD@ "A:\PALS3\DATA\TIF\ERA2.TIF"
  130. 1290  LINE(0,0)-(319,239),PSET,7,B:LINE(5,5)-(314,234),PSET,7,B
  131. 1300  FOR I=0 TO 5:LINE(6+I,6+I)-(313-I,233-I),PSET,1,B:NEXT:SC=PS
  132. 1310  GOSUB *PAD:WHILE BTN1=0:GOSUB *PAD
  133. 1320  LOCATE 22,2 :PRINT "  *** 惑星 選別 ***"
  134. 1330  LOCATE 27,3 :PRINT "惑星名          "+WAKUSEI$(ER)
  135. 1340  LOCATE 30,4 :PRINT USING"惑星 重力  =    ######";WAKUJ(ER)
  136. 1350  LOCATE 30,5 :PRINT USING"惑星 温度  =  ########";WAKUO(ER)
  137. 1360  LOCATE 30,6 :PRINT USING"惑星 種別  =     #####";WS(ER)
  138. 1370   FOR I=1 TO 8:LINE (35*I,75)-(35*I+25,100),PSET,7,B:NEXT
  139. 1380   IF PAD1=3 THEN ER=ER+1:IF ER>7 THEN ER=0
  140. 1390   IF PAD1=7 THEN ER=ER-1:IF ER<0 THEN ER=7
  141. 1400   LINE(35+35*ER,75)-(60+35*ER,100),PSET,2,B:WS=WS(ER)
  142. 1410  WEND:CLS 1
  143. 1420  IF BTN1=1 ELSE BTN1=0:GOTO 1310
  144. 1430  GOSUB *初期
  145. 1440  FOR I=1 TO MISAK(MISA)
  146. 1450   MMISS(I)=1:MST(I)=0
  147. 1460   MSX(I)=MX(1)+I*2:MSY(I)=MY(1)+I*2:MSZ(I)=MZ(1)+I*2
  148. 1470  NEXT
  149. 1480  GOSUB *初期設定:GOSUB *WINCLS2
  150. 1490 *ROOP'==============================
  151. 1500      BTN1=0:COLOR 7,1,7,4
  152. 1510        SYMBOL (110,90),"「    "+WAKUSEI$(ER)+"」",1,1,7,,,8
  153. 1520        SYMBOL (100,120),"PUSH PAD KEY START",1,1,7,,,8
  154. 1530      COLOR 7,0,7,4:KI=6:D%=3:TM=300'時間設定
  155. 1540     WHILE BTN1=0:GOSUB *PAD:WEND:BTN1=0:CLS:GOSUB *表示:OT=TIME
  156. 1550     WHILE KI>1
  157. 1560            IF G%(1)=1 ELSE GOSUB *MAP_IDOU
  158. 1570             GOSUB *TEKI_IDO
  159. 1580             GOSUB *MMISA
  160. 1590             GOSUB *範囲限定
  161. 1600             GOSUB *確認
  162. 1610             GOSUB *管理
  163. 1620             GOSUB *表示
  164. 1630             GOSUB *時間管理
  165. 1640            IF PW(1)<SOUK(S1(1)) THEN PW(1)=PW(1)+100'バリア
  166. 1650     WEND:GOTO *EG
  167. 1660 '================================
  168. 1670 *MAP_IDOU:SCREEN@ 1:KI=0
  169. 1680  FOR I=1 TO MT : IF G%(I)=0 THEN KI=KI+1 : NEXT
  170. 1690  GOSUB *PAD:PAD1=0:BTN1=0
  171. 1700  PAD1=PAD(1):BTN1=PTRIG(1)
  172. 1710  IF PAD1=0 ELSE D$=" "
  173. 1720  IF BTN1=0 ELSE B$=" "
  174. 1730  N$=INKEY$
  175. 1740  IF B$=" " THEN IF BTN1=4 THEN *TOKU
  176. 1750  IF B$=" " THEN IF BTN1=8 THEN *ERABU
  177. 1760  IF N$="" ELSE GOSUB *MENU:GOTO 1690
  178. 1770   IF B$=" " THEN IF BTN1=1 THEN *ATAK
  179. 1780   IF B$=" " THEN IF BTN1=2 THEN *MMISA
  180. 1790   IF PAD1=3 THEN D%=D%+1:IF D%>8 THEN D%=1
  181. 1800   IF PAD1=7 THEN D%=D%-1:IF D%<0 THEN D%=8
  182. 1810   IF PAD1=1 THEN
  183. 1820    IF D%=1 THEN MX(1)=MX(1)      :MY(1)=MY(1)-KS%*E:OD%=1
  184. 1830    IF D%=2 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)-KS%*E:OD%=2
  185. 1840    IF D%=3 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)      :OD%=3
  186. 1850    IF D%=4 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)+KS%*E:OD%=4
  187. 1860    IF D%=5 THEN MX(1)=MX(1)      :MY(1)=MY(1)+KS%*E:OD%=5
  188. 1870    IF D%=6 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)+KS%*E:OD%=6
  189. 1880    IF D%=7 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)      :OD%=7
  190. 1890    IF D%=8 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)-KS%*E:OD%=8
  191. 1900   ENDIF
  192. 1910   IF PAD1=5 THEN
  193. 1920    IF D%=1 THEN MX(1)=MX(1)      :MY(1)=MY(1)+KS%*E:OD%=1
  194. 1930    IF D%=2 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)+KS%*E:OD%=2
  195. 1940    IF D%=3 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)      :OD%=3
  196. 1950    IF D%=4 THEN MX(1)=MX(1)-KS%*E:MY(1)=MY(1)-KS%*E:OD%=4
  197. 1960    IF D%=5 THEN MX(1)=MX(1)      :MY(1)=MY(1)-KS%*E:OD%=5
  198. 1970    IF D%=6 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)-KS%*E:OD%=6
  199. 1980    IF D%=7 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)      :OD%=7
  200. 1990    IF D%=8 THEN MX(1)=MX(1)+KS%*E:MY(1)=MY(1)+KS%*E:OD%=8
  201. 2000   ENDIF
  202. 2010    IF D%=0 THEN M$=M$:D%=OD%
  203. 2020  RETURN
  204. 2030 *TEKI_IDO'---------------------------
  205. 2040 FOR I=2 TO MT
  206. 2050  IF G%(I)=1 THEN GOTO 2180
  207. 2060  T(I)=INT(RND*6)+1
  208. 2070  IF G%(T(I))=1 OR T(I)=I THEN GOTO 2060
  209. 2080  IF MX(I)>MX(T(I)) THEN MX(I)=MX(I)-KS% ELSE MX(I)=MX(I)+KS%
  210. 2090  IF MY(I)>MY(T(I)) THEN MY(I)=MY(I)-KS% ELSE MY(I)=MY(I)+KS%
  211. 2100  IF MZ(I)<MZ(T(I)) THEN MZ(I)=MZ(I)+KS% ELSE MZ(I)=MZ(I)-KS%
  212. 2110  FOR A=1 TO MT
  213. 2120  IF G%(A)=1 THEN GOTO 2160
  214. 2130  IF A=I THEN GOTO 2160
  215. 2140  IF MX(A)>MX(I)-SP%(I) THEN IF MX(A)<MX(I)+SP%(I) THEN IF MY(A)>MY(I)-SP%(I) THEN IF MY(A)<MY(I)+SP%(I) THEN V=A
  216. 2150  IF MX(A)>MX(I)-SP%(I) THEN IF MX(A)<MX(I)+SP%(I) THEN IF MY(A)>MY(I)-SP%(I) THEN IF MY(A)<MY(I)+SP%(I) THEN GOSUB *T_ATAK
  217. 2160  NEXT
  218. 2170  GOSUB *範囲限定:V=0
  219. 2180  NEXT
  220. 2190  RETURN
  221. 2200 *表示'---------------------------
  222. 2210  IF G%(1)=1 THEN GOTO 2240
  223. 2220    TQ=TM-T:TQ$=STR$(TQ)
  224. 2230    T1$=RIGHT$(TQ$,5)
  225. 2240  FOR I=1 TO MT : OKI(1)=127
  226. 2250   IF G%(1)=1 THEN 2900
  227. 2260   IF G%(I)=1 THEN 2890
  228. 2270   IF I=1 THEN LINE (0,0)-(319,119+MZ(1)),PSET,WW(ER),BF
  229. 2280   SYMBOL (220,0),T1$,1,1.2!,6,,,18
  230. 2290   IF I=1 THEN LINE (0,119+MZ(1))-(319,240),PSET,C,BF
  231. 2300   IF I=1 THEN GOTO 2900
  232. 2310   IF OD%=D% THEN PEW(I)=1
  233. 2320   IF D%=1 THEN
  234. 2330     IF MX(1)>MX(I) THEN VX(I)=160-(MX(1)-MX(I))
  235. 2340     IF MX(1)<MX(I) THEN VX(I)=160+(MX(I)-MX(1))
  236. 2350     IF MY(1)>MY(I) THEN VY(I)=119-(MY(1)-MY(I))
  237. 2360     IF MY(1)>MY(I) THEN PEW(I)=1 ELSE PEW(I)=0
  238. 2370   ELSE IF D%=2 THEN
  239. 2380     IF MX(1)<MX(I) THEN VX(I)=160-(MX(I)-MX(1))
  240. 2390     IF MY(1)>MY(I) THEN VX(I)=160+(MY(1)-MY(I))
  241. 2400     IF MY(1)>MY(I) THEN VY(I)=119-INT(MY(1)/MX(1)-MY(I)/MX(I))
  242. 2410     IF MY(1)>MY(I) AND MX(1)<MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  243. 2420   ELSE IF D%=3 THEN
  244. 2430     IF MX(1)<MX(I) THEN VY(I)=119-(MX(I)-MX(1))
  245. 2440     IF MY(1)>MY(I) THEN VX(I)=160+(MY(1)-MY(I))
  246. 2450     IF MY(1)<MY(I) THEN VX(I)=160-(MY(1)-MY(I))
  247. 2460     IF MX(1)<MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  248. 2470   ELSE IF D%=4 THEN
  249. 2480     IF MX(1)<MX(I) THEN VX(I)=160-(MX(I)-MX(1))
  250. 2490     IF MY(1)<MY(I) THEN VX(I)=160+(MY(1)-MY(I))
  251. 2500     IF MY(1)<MY(I) THEN VY(I)=119-INT(MY(I)/MX(I)-MY(1)/MX(1))
  252. 2510     IF MY(1)<MY(I) AND MX(1)<MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  253. 2520   ELSE IF D%=5 THEN
  254. 2530     IF MX(1)>MX(I) THEN VX(I)=160+(MX(1)-MX(I))
  255. 2540     IF MX(1)<MX(I) THEN VX(I)=160-(MX(I)-MX(1))
  256. 2550     IF MY(1)<MY(I) THEN VY(I)=119+(MY(1)-MY(I))
  257. 2560     IF MY(1)<MY(I) THEN PEW(I)=1 ELSE PEW(I)=0
  258. 2570   ELSE IF D%=6 THEN
  259. 2580     IF MX(1)>MX(I) THEN VX(I)=160+(MX(I)-MX(1))
  260. 2590     IF MY(1)<MY(I) THEN VX(I)=160-(MY(1)-MY(I))
  261. 2600     IF MY(1)<MY(I) THEN VY(I)=119-INT(MY(1)/MX(I)-MY(1)/MX(1))
  262. 2610     IF MY(1)<MY(I) AND MX(1)>MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  263. 2620   ELSE IF D%=7 THEN
  264. 2630     IF MX(1)>MX(I) THEN VY(I)=119-(MX(1)-MX(I))
  265. 2640     IF MY(1)<MY(I) THEN VX(I)=160-(MY(I)-MY(1))
  266. 2650     IF MY(1)>MY(I) THEN VX(I)=160+(MY(1)-MY(I))
  267. 2660     IF MX(1)>MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  268. 2670   ELSE IF D%=8 THEN
  269. 2680     IF MX(1)>MX(I) THEN VX(I)=160+(MX(I)-MX(1))
  270. 2690     IF MY(1)>MY(I) THEN VX(I)=160-(MY(1)-MY(I))
  271. 2700     IF MY(1)>MY(I) THEN VY(I)=119-INT(MY(1)/MX(I)-MY(I)/MX(1))
  272. 2710     IF MY(1)>MY(I) AND MX(1)>MX(I) THEN PEW(I)=1 ELSE PEW(I)=0
  273. 2720   ENDIF
  274. 2730   IF PEW(I)=1 THEN
  275. 2740    IF VY(I)<160 THEN VY(I)=160:OKI=1
  276. 2750    VY(I)=VY(I)-MZ(I)+MZ(1)
  277. 2760    IF MX(1)>MX(I) THEN X(I)=MX(1)-MX(I)
  278. 2770    IF MY(1)>MY(I) THEN Y(I)=MY(1)-MY(I)
  279. 2780    IF MZ(1)>MZ(I) THEN Z(I)=MZ(1)-MZ(I)
  280. 2790    IF MX(1)<MX(I) THEN X(I)=MX(I)-MX(1)
  281. 2800    IF MY(1)<MY(I) THEN Y(I)=MY(I)-MY(1)
  282. 2810    IF MZ(1)<MZ(I) THEN Z(I)=MZ(I)-MZ(1)
  283. 2820    SR(I)=SQR(X(I)*X(I)+Y(I)*Y(I))
  284. 2830    SL(I)=SQR(SR(I)*SR(I)+Z(I)*Z(I))
  285. 2840     GOSUB *OOKISA
  286. 2850     IF SL(I)<=SP% THEN ROCK=2 ELSE ROCK=7
  287. 2860     CIRCLE(VX(I),VY(I)),OKI(I),ROCK,,,,F,,I
  288. 2870     PEW(I)=0
  289. 2880   ENDIF
  290. 2890  GOTO 3140
  291. 2900   IF G%(1)=1 THEN 3140
  292. 2910     FOR O=1 TO MISAK(MISA)
  293. 2920      IF MMISS(O)=1 THEN 3130
  294. 2930         IF MX(1)>MSX(O) THEN MMVX(I)=160-(MX(1)-MSX(O))
  295. 2940         IF MX(1)=MSX(O) THEN MMVX(I)=160
  296. 2950         IF MX(1)<MSX(O) THEN MMVX(I)=160-(MSX(O)-MX(1))
  297. 2960         IF MY(1)>MSY(O) THEN MMVY(I)=239-(MY(1)-MSY(O)):MPEW(I)=1
  298. 2970         IF MY(1)=MSY(O) THEN MMVY(I)=239:MPEW(I)=1
  299. 2980         IF MY(1)<MSY(O) THEN MMVY(I)=239-(MSY(O)-MY(1)):MPEW(I)=1
  300. 2990         IF MPEW(O)=1 THEN IF MMVY(O)<160 THEN MMVY(O)=160:MOKI(O)=1
  301. 3000         IF MPEW(O)=1 THEN MMVY(O)=MMVY(O)-MSZ(O)+MZ(1)
  302. 3010         IF MPEW(O)=1 THEN
  303. 3020         IF MX(1)>MSX(O) THEN MVX(O)=MX(1)-MSX(O)
  304. 3030         IF MY(1)>MSY(O) THEN MVY(O)=MY(1)-MSY(O)
  305. 3040         IF MZ(1)>MSZ(O) THEN MVZ(O)=MZ(1)-MSZ(O)
  306. 3050         IF MX(1)<MSX(O) THEN MVX(O)=MSX(O)-MX(1)
  307. 3060         IF MY(1)<MSY(O) THEN MVY(O)=MSY(O)-MY(1)
  308. 3070         IF MZ(1)<MSZ(O) THEN MVZ(O)=MSZ(O)-MZ(1)
  309. 3080         MSR(O)=SQR(MVX(O)*MVX(O)+MVY(O)*MVY(O))
  310. 3090         MSL(O)=SQR(MVR(O)*MVR(O)+MVZ(O)*MVZ(O))
  311. 3100         GOSUB *MOKI
  312. 3110        CIRCLE (MMVX(O),MMVY(O)),MOKI(O),1,,,,F,,7'誘導弾
  313. 3120        ENDIF
  314. 3130  NEXT
  315. 3140 NEXT
  316. 3150   FOR I=1 TO 5
  317. 3160    IF BT(I)>0 THEN BT(I)=BT(I)-1
  318. 3170    IF KAE=I THEN COLOR 6
  319. 3180    IF BT(I)<>0 THEN COLOR 2
  320. 3190    IF VIEW_P=1 THEN
  321. 3200     LOCATE 53,16+I-1:PRINT USING "[##] ###  BT ##";I;BHAN(I);BT(I)
  322. 3210    ELSE
  323. 3220     LOCATE 2,1+I-1:PRINT USING "[##] ###  BT ##";I;BHAN(I);BT(I)
  324. 3230    ENDIF
  325. 3240    COLOR 7
  326. 3250   NEXT
  327. 3260  RETURN
  328. 3270 *T_ATAK
  329. 3280  IF V=0 THEN MZ(I)=MZ(I)+10*FO:GOTO 3300
  330. 3290  IF MZ(V)>MZ(I)-SP%(I) THEN IF MZ(V)<MZ(I)+SP%(I) THEN GOSUB *LASER          ELSE IF MZ(V)>MZ(I) THEN MZ(I)=MZ(I)+10*FO ELSE MZ(I)=MZ(I)-10*FO
  331. 3300  RETURN
  332. 3310 *LASER'------------------------------
  333. 3320 IF V=0 THEN 3390
  334. 3330  PCMPLAY OTO,OKI(V)
  335. 3340  PW(V)=PW(V)-IRYO(B1(I))
  336. 3350   LINE(VX(I)-1,VY(I)-1)-(VX(V),VY(V)),PSET,3
  337. 3360   LINE(VX(I),VY(I))-(VX(V),VY(V)),PSET,3
  338. 3370   LINE(VX(I)+1,VY(I)+1)-(VX(V),VY(V)),PSET,3
  339. 3380   LINE(VX(I),VY(I))-(VX(V),VY(V)),PSET,C
  340. 3390  GOSUB *確認:RETURN
  341. 3400 *確認'-------------------------------
  342. 3410  FOR V=1 TO MT
  343. 3420   IF G%(V)=1 THEN 3490
  344. 3430    IF PW(V)<=0 THEN 
  345. 3440      PCMPLAY OTO2,OKI(V)
  346. 3450        FOR P=1 TO OKI(V)*2:CIRCLE (VX(V),VY(V)),P,2:NEXT
  347. 3460        FOR P=1 TO OKI(V)*2:CIRCLE (VX(V),VY(V)),P,0:NEXT
  348. 3470      G%(V)=1:PT(I)=PT(I)+1:CR(V)=CR(V)+1
  349. 3480    ENDIF
  350. 3490  NEXT:RETURN
  351. 3500 *MENU'------------------------------
  352. 3510  CLS 1
  353. 3520  LINE(0,0)-(80,100),PSET,7,B
  354. 3530  WHILE N$="":N$=INKEY$:WEND
  355. 3540  N%=VAL(N$)
  356. 3550   IF N%=1 THEN VP%=1
  357. 3560   IF N%=2 THEN VP%=2
  358. 3570   IF N%=3 THEN VP%=3
  359. 3580   IF N%=4 THEN VP%=4
  360. 3590   IF N%=5 THEN VP%=5
  361. 3600   IF N%=6 THEN VP%=6
  362. 3610   IF N%=7 THEN VP%=7
  363. 3620   IF N%=8 THEN VP%=8
  364. 3630   IF N%=9 THEN VP%=9
  365. 3640   IF N%=0 THEN *EG
  366. 3650  RETURN
  367. 3660 *ERABU'------------------------------
  368. 3670  N%=N%+1 : IF N%=6 THEN N%=1
  369. 3680  IF N%=1 THEN SP%=BHAN(B1):BT1=BHT(B1):KAE=1
  370. 3690  IF N%=2 THEN SP%=BHAN(B2):BT2=BHT(B2):KAE=2
  371. 3700  IF N%=3 THEN SP%=BHAN(B3):BT3=BHT(B3):KAE=3
  372. 3710  IF N%=4 THEN SP%=BHAN(B4):BT4=BHT(B4):KAE=4
  373. 3720  IF N%=5 THEN SP%=BHAN(B5):BT5=BHT(B5):KAE=5
  374. 3730  RETURN
  375. 3740 *ATAK'--------------------------
  376. 3750  IF BT(KAE)=0 ELSE 3870
  377. 3760   IF G%(1)=1 THEN RETURN
  378. 3770  FOR I=2 TO MT
  379. 3780   IF D%=1 THEN IF MX(I)<MX(1)+SP% THEN IF MX(I)>MX(1)-SP% THEN                IF MY(I)<MY(1)-1 THEN GOSUB *T_D
  380. 3790   IF D%=2 THEN IF MX(I)>MX(1)+1 THEN IF MX(I)<MX(1)+SP% THEN                  IF MY(I)<MY(1)-1 THEN IF MY(I)>MY(1)-SP% THEN GOSUB *T_D
  381. 3800   IF D%=3 THEN IF MX(I)>MX(1)-1 THEN IF MY(I)>MY(1)-SP% THEN                  IF MY(I)<MY(1)+SP% THEN GOSUB *T_D
  382. 3810   IF D%=4 THEN IF MX(I)>MX(1)+1 THEN IF MX(I)<MX(1)+SP% THEN                  IF MY(I)>MY(1)+1 THEN IF MY(I)<MY(1)+SP% THEN GOSUB *T_D
  383. 3820   IF D%=5 THEN IF MY(I)>MY(1)+1 THEN IF MX(I)>MX(1)-SP% THEN                  IF MX(I)<MX(1)+SP% THEN GOSUB *T_D
  384. 3830   IF D%=6 THEN IF MX(I)<MX(1)-1 THEN IF MX(I)>MX(1)-SP% THEN                  IF MY(I)>MY(1)+1 THEN IF MY(I)<MY(1)+SP% THEN GOSUB *T_D
  385. 3840   IF D%=7 THEN IF MX(I)<MX(1)-1 THEN IF MY(I)>MY(1)-SP% THEN                  IF MY(I)<MY(1)+SP% THEN GOSUB *T_D
  386. 3850   IF D%=8 THEN IF MX(I)<MX(1)-1 THEN IF MX(I)>MX(1)-SP% THEN                  IF MY(I)<MY(1)-1 THEN IF MY(I)>MY(1)-SP% THEN GOSUB *T_D
  387. 3860  NEXT
  388. 3870  IF BT(KAE)=0 THEN BT(KAE)=BHT(KAE)
  389. 3880  RETURN
  390. 3890 *T_D'------------------------------
  391. 3900  IF MZ(I)>MZ(1)-SP% THEN IF MZ(I)<MZ(1)+SP% ELSE RETURN
  392. 3910  IF MZ(I)>MZ(1)-SP% THEN IF MZ(I)<MZ(1)+SP% ELSE RETURN
  393. 3920  IF G%(I)=1 THEN GOTO 3940
  394. 3930  V=I:I=1:GOSUB *LASER:I=V
  395. 3940  RETURN
  396. 3950 *TOKU'------------------------------
  397. 3960  BSTER=10*E
  398. 3970  MZ(1)=MZ(1)+BSTER:PCMPLAY BSTER
  399. 3980  GOSUB *範囲限定:RETURN
  400. 3990 *PAD'----------------------------
  401. 4000  PAD1=0:PAD2=0:BTN1=0:BTN2=0
  402. 4010  PAD1=PAD(1):PAD2=PAD(2):BTN1=PTRIG(1):BTN2=PTRIG(2)
  403. 4020  RETURN
  404. 4030 *EG:CLS 1'----------------------------
  405. 4040  VIEW(0,0)-(319,239)
  406. 4050  IF D$="S" OR D$="s" OR N$="S" OR N$="s" THEN 
  407. 4060      COLOR 7,2,7,4
  408. 4070       SYMBOL (30,100),"GIVE UP!!!",2,3,6,,,8
  409. 4080      COLOR 7,0,7,4
  410. 4090     GOSUB *初期:WAIT 300:GOTO *MAIN
  411. 4100  ENDIF
  412. 4110  IF T>TM THEN 
  413. 4120    COLOR 7,2,7,4
  414. 4130    SYMBOL (30,100),"TIME UP!!",2,3,6,,,8
  415. 4140    COLOR 7,0,7,4
  416. 4150    GOSUB *初期:WAIT 300:GOTO *MAIN
  417. 4160  ENDIF
  418. 4170  GOSUB *WINCLS2:LOAD@ "A:\PALS3\DATA\TIF\GAME_O.TIF":CR=CR+1
  419. 4180  SYMBOL (120,50),"WINNER",1,1,5,,,8:COLOR 7,1,7,4
  420. 4190  SYMBOL (35,80),NA$(WINNER)+" and "+PALS$(WINNER),1,2,7,,,8
  421. 4200  COLOR 7,0,7,4
  422. 4210  SYMBOL (120,128),"for RS SOFT",1,1,2,,,8
  423. 4220  COLOR 7,6,7,4:SYMBOL (100,150),"in FM TOWNS SERIES",1,1,1,,,8
  424. 4230  COLOR 7,0,7,4
  425. 4240  BONAS=(TM-T)*10+100*N
  426. 4250  T$=STR$(T):BONAS$=STR$(BONAS)
  427. 4260  SYMBOL (140,180),"☆ Time : "+T$+" second",.8!,.8!,7,,,1
  428. 4270  SYMBOL (150,195),"☆ Bonas : "+BONAS$+" point",.8!,.8!,7,,,1
  429. 4280  SC(WINNER)=SC(WINNER)+BONAS:PS(WINNER)=SC(WINNER)
  430. 4290  GOSUB *初期:BTN1=0:WHILE BTN1=0:GOSUB *PAD:WEND
  431. 4300  GOTO *MAIN
  432. 4310 *UNIT'-------------------------------
  433. 4320  OPEN "\PALS3\DATA\DAT\BUKI.DAT" FOR INPUT AS #2
  434. 4330   FOR I=0 TO 8
  435. 4340    INPUT #2,BK(I),BUKI$(I),IRYO(I),BH(I),BHAN(I),BHT(I),BS(I)
  436. 4350   NEXT:CLOSE
  437. 4360  OPEN "\PALS3\DATA\DAT\SOUKOU.DAT" FOR INPUT AS #3
  438. 4370    FOR I=0 TO 7 
  439. 4380      INPUT #3,SOU(I),SOUKOU$(I),SOUO(I),SOUT(I),SOUK(I)
  440. 4390    NEXT:CLOSE
  441. 4400  OPEN "\PALS3\DATA\DAT\MISAILE.DAT" FOR INPUT AS #11
  442. 4410    FOR I=0 TO 6 
  443. 4420      INPUT #11,MISA(I),MISA$(I)
  444. 4430      INPUT #11,MISAI(I),MISAO(I),MISAH(I),MISAT(I),MISAK(I),MISAS(I)
  445. 4440    NEXT:CLOSE
  446. 4450  RETURN
  447. 4460 *WAKUSEI'-----------------------------
  448. 4470  OPEN "\PALS3\DATA\DAT\WAKUSEI.DAT" FOR INPUT AS #12
  449. 4480    FOR I=0 TO 7 
  450. 4490     INPUT #12,WAKU(I),WAKUSEI$(I),WAKUJ(I),WAKUO(I),WS(I),WC(I),WW(I)
  451. 4500    NEXT:CLOSE
  452. 4510  RETURN
  453. 4520 *読み込み'-----------------------------
  454. 4530   T$=DUSER$
  455. 4540   OPEN ""+T$+"\KITAI.DAT" FOR INPUT AS #1
  456. 4550    INPUT #1,F(1),S(1),O(1)
  457. 4560    INPUT #1,BUKI(1)
  458. 4570    INPUT #1,SOUKOU(1)
  459. 4580    INPUT #1,SOUBIHIN(1)
  460. 4590    INPUT #1,KAKUTYOU(1)
  461. 4600    INPUT #1,ENEM(1),ENES(1),ENEB(1)
  462. 4610   CLOSE
  463. 4620   OPEN ""+T$+"\USER.DAT" FOR INPUT AS #1
  464. 4630    INPUT #1,NA$(1),RNK(1),PS(1)
  465. 4640    INPUT #1,PT(1),CR(1),PR(1)
  466. 4650   CLOSE
  467. 4660   OPEN ""+T$+"\SET.DAT" FOR INPUT AS #1
  468. 4670    INPUT #1,SET2(1),SET2(2),SET2(3)
  469. 4680   CLOSE
  470. 4690   OPEN ""+T$+"\PALS.PPD" FOR INPUT AS #7
  471. 4700    INPUT #7,PALS$(1),MA,MB
  472. 4710    INPUT #7,B1(1),B2,B3,B4,B5,B6,B7
  473. 4720    INPUT #7,SU1,SU2,S1(1),S2,S3
  474. 4730    INPUT #7,KA1,KA2,KA3,KA4,KA5,D1
  475. 4740    INPUT #7,MA1,MA2,MA3
  476. 4750    INPUT #7,SB1,SB2,SB3
  477. 4760    INPUT #7,BA1,BA2,BA3,BA4,BA5,BA6,BA7
  478. 4770    INPUT #7,MISA
  479. 4780  CLOSE
  480. 4790 RETURN
  481. 4800 *読み込み2'----------------------------
  482. 4810   OPEN "\PALS3\DATA\SAMPLE.PPD" FOR INPUT AS #8
  483. 4820   FOR I=2 TO MT
  484. 4830   INPUT #8,PALS$(I),NA$(I)
  485. 4840   INPUT #8,F(I),O(I),S(I)
  486. 4850   INPUT #8,B1(I),B2(I)
  487. 4860   INPUT #8,SU1(I)
  488. 4870   INPUT #8,KA1(I)
  489. 4880   INPUT #8,D1(I)
  490. 4890   INPUT #8,PS(I),PT(I)
  491. 4900   INPUT #8,MISA(I)
  492. 4910  NEXT:CLS 1:RETURN
  493. 4920 *処理'------------------------------
  494. 4930  PW(I)=PW(I)-MISAI(MISA):GOSUB *爆発M:GOSUB *表示
  495. 4940   FOR R=1 TO MT
  496. 4950    IF PW(R)<0 THEN GOSUB *爆発T2
  497. 4960   NEXT
  498. 4970  RETURN
  499. 4980 *爆発M'------------------------------
  500. 4990  IF G%(I)=1 THEN RETURN
  501. 5000   PCMPLAY OTO2,OKI(I)
  502. 5010   FOR P=1 TO MOKI(MISA)*3:CIRCLE(VX(O),VY(O)),P,3,,,,F,,2:NEXT
  503. 5020   FOR P=1 TO MOKI(MISA)*3:CIRCLE(VX(O),VY(O)),P,C:NEXT:MMISS(O)=1
  504. 5030  RETURN
  505. 5040 *爆発T2'-----------------------------
  506. 5050  FOR R=1 TO MT
  507. 5060   IF G%(R)=1 THEN 5110
  508. 5070   IF PW(R)<=0 THEN PCMPLAY OTO2,OKI(R)
  509. 5080   IF PW(R)<=0 THEN FOR P=1 TO OKI(R):CIRCLE(VX(R),VY(R)),P,2:NEXT
  510. 5090   IF PW(R)<=0 THEN FOR P=1 TO OKI(R):CIRCLE(VX(R),VY(R)),P,0:NEXT
  511. 5100   IF PW(R)<=0 THEN G%(R)=1:PT=PT+1
  512. 5110  NEXT:RETURN
  513. 5120 *ENTRY'------------------------------
  514. 5130   BTN=0:GOSUB *WINCLS:LOAD@"\PALS3\DATA\TIF\OPEN06.TIF"
  515. 5140   LINE (30,20)-(289,49),PASTEL,1,BF
  516. 5150   LINE(29,19)-(290,50),PSET,7,B
  517. 5160   SYMBOL(35,20),"ENTRY PALS  MENTENANS or SET UP",1,2,7,,,8
  518. 5170   LINE (60,70)-(259,219),PASTEL,1,BF
  519. 5180   LINE(59,69)-(260,220),PSET,7,B
  520. 5190   EN1$="[BATTLING]"
  521. 5200   EN2$="[PALS_E・T]"
  522. 5210   EN3$="[OPENNING]"
  523. 5220   EN4$="[SYS_SET]"
  524. 5230   EN5$="[EXIT]"
  525. 5240   SYMBOL(67,77) ,EN1$,1,1,4,,,8
  526. 5250   SYMBOL(67,107),EN2$,1,1,7,,,8
  527. 5260   SYMBOL(67,137),EN3$,1,1,7,,,8
  528. 5270   SYMBOL(67,167),EN4$,1,1,7,,,8
  529. 5280   SYMBOL(67,197),EN5$,1,1,7,,,8
  530. 5290  WHILE BTN=0:GOSUB *PAD
  531. 5300   IF BTN1=1 THEN BTN=1
  532. 5310   IF PAD1=5 THEN ENTRY=ENTRY+1:IF ENTRY>5 THEN ENTRY=1
  533. 5320   IF PAD1=1 THEN ENTRY=ENTRY-1:IF ENTRY<1 THEN ENTRY=5
  534. 5330   IF ENTRY=1 THEN SYMBOL(67,77) ,EN1$,1,1,4
  535. 5340   IF ENTRY=2 OR ENTRY=5 THEN SYMBOL(67,77) ,EN1$,1,1,7
  536. 5350   IF ENTRY=2 THEN SYMBOL(67,107),EN2$,1,1,4
  537. 5360   IF ENTRY=1 OR ENTRY=3 THEN SYMBOL(67,107),EN2$,1,1,7
  538. 5370   IF ENTRY=3 THEN SYMBOL(67,137),EN3$,1,1,4
  539. 5380   IF ENTRY=2 OR ENTRY=4 THEN SYMBOL(67,137),EN3$,1,1,7
  540. 5390   IF ENTRY=4 THEN SYMBOL(67,167),EN4$,1,1,4
  541. 5400   IF ENTRY=3 OR ENTRY=5 THEN SYMBOL(67,167),EN4$,1,1,7
  542. 5410   IF ENTRY=5 THEN SYMBOL(67,197),EN5$,1,1,4
  543. 5420   IF ENTRY=1 OR ENTRY=4 THEN SYMBOL(67,197),EN5$,1,1,7
  544. 5430  WEND:PLAY "O5<<B4>>","O6<<F4>>"
  545. 5440  IF ENTRY=1 THEN SYMBOL(160,77),"ENTRY!",2,1,7
  546. 5450  IF ENTRY=2 THEN RETURN
  547. 5460  IF ENTRY=3 THEN GOSUB *TITLE
  548. 5470  IF ENTRY=4 THEN GOSUB *SYS_SET:GOTO *ENTRY
  549. 5480  IF ENTRY=5 THEN SYMBOL(160,197),"See You Agein",1,1,7
  550. 5490  IF ENTRY=5 THEN SYSTEM
  551. 5500  RETURN
  552. 5510 *WINCLS'-----------------------------
  553. 5520  FOR Q=0 TO 119
  554. 5530   LINE(0,239-2*Q)-(639,239-2*Q),PASTEL,0
  555. 5540   LINE(0,0+2*Q)-(639,0+2*Q),PASTEL,0
  556. 5550  NEXT:RETURN
  557. 5560 *WINCLS2'-----------------------------
  558. 5570  FOR Q=0 TO 119
  559. 5580   LINE(0,239-2*Q)-(639,239-2*Q),PSET,0
  560. 5590   LINE(0,0+2*Q)-(639,0+2*Q),PSET,0
  561. 5600  NEXT:RETURN
  562. 5610 *WINCLS3'-----------------------------
  563. 5620  FOR Q=0 TO 119
  564. 5630   LINE(0,239-2*Q)-(639,239-2*Q),PSET,7
  565. 5640   LINE(0,0+2*Q)-(639,0+2*Q),PSET,7
  566. 5650  NEXT:RETURN
  567. 5660 *SYS_SET'=============================
  568. 5670  GOSUB *WINCLS2:LOAD@ "\PALS3\DATA\TIF\ERA.TIF"
  569. 5680   SYMBOL(47,77) ,"範囲限定  ",1,1,7,,,8
  570. 5690   SYMBOL(47,107),"自機視点  ",1,1,7,,,8
  571. 5700   SYMBOL(47,137),"1Por2P",1,1,7,,,8
  572. 5710   SYMBOL(150,77) ,"限定  非限定",1,1,7,,,8
  573. 5720   SYMBOL(150,107) ,"Top  Mulch",1,1,7,,,8
  574. 5730   SYMBOL(150,137) ,"1P  2P",1,1,7,,,8
  575. 5740  BTN=0
  576. 5750  WHILE BTN=0:GOSUB *PAD
  577. 5760   IF BTN1=1 THEN BTN=1
  578. 5770   IF PAD1=5 THEN SET=SET+1:IF SET>3 THEN SET=3
  579. 5780   IF PAD1=1 THEN SET=SET-1:IF SET<1 THEN SET=1
  580. 5790   IF PAD1=3 THEN SET2(SET)=SET2(SET)+1
  581. 5800   IF PAD1=7 THEN SET2(SET)=SET2(SET)-1
  582. 5810   IF SET2(SET)<1 THEN SET2(SET)=2
  583. 5820   IF SET2(SET)>2 THEN SET2(SET)=1
  584. 5830   IF SET=1 THEN 
  585. 5840         SYMBOL(47,77) ,"範囲限定  ",1,1,4
  586. 5850         SYMBOL(47,107),"自機視点  ",1,1,7
  587. 5860         IF SET2(1)=1 THEN SYMBOL(150,77) ,"限定",1,1,3
  588. 5870         IF SET2(1)=1 THEN SYMBOL(150,77) ,"      非限定",1,1,7
  589. 5880         IF SET2(1)=1 THEN MAXX1=15:MAXY1=15:MAXX2=305:MAXY2=155
  590. 5890         IF SET2(1)=2 THEN SYMBOL(150,77) ,"限定",1,1,7
  591. 5900         IF SET2(1)=2 THEN SYMBOL(150,77) ,"      非限定",1,1,3
  592. 5910         IF SET2(1)=2 THEN MAXX1=305:MAXY1=155:MAXX2=15:MAXY2=15
  593. 5920   ENDIF
  594. 5930   IF SET=2 THEN 
  595. 5940         SYMBOL(47,77) ,"範囲限定  ",1,1,7
  596. 5950         SYMBOL(47,107),"自機視点  ",1,1,4
  597. 5960         SYMBOL(47,137),"1Por2P",1,1,7
  598. 5970         IF SET2(2)=1 THEN SYMBOL(150,107) ,"Top",1,1,3
  599. 5980         IF SET2(2)=1 THEN SYMBOL(150,107) ,"      Mulch",1,1,7
  600. 5990         IF SET2(2)=1 THEN VIEW_P=1
  601. 6000         IF SET2(2)=2 THEN SYMBOL(150,107) ,"Top",1,1,7
  602. 6010         IF SET2(2)=2 THEN SYMBOL(150,107) ,"      Mulch",1,1,3
  603. 6020         IF SET2(2)=2 THEN VIEW_P=2
  604. 6030   ENDIF
  605. 6040   IF SET=3 THEN 
  606. 6050         SYMBOL(47,107),"自機視点  ",1,1,7
  607. 6060         SYMBOL(47,137),"1Por2P",1,1,4
  608. 6070         IF SET2(3)=1 THEN SYMBOL(150,137) ,"1P",1,1,3
  609. 6080         IF SET2(3)=1 THEN SYMBOL(150,137) ,"      2P",1,1,7
  610. 6090         IF SET2(3)=2 THEN SYMBOL(150,137) ,"1P",1,1,7
  611. 6100         IF SET2(3)=2 THEN SYMBOL(150,137) ,"      2P",1,1,3
  612. 6110   ENDIF
  613. 6120  WEND:PLAY "O5<<B4>>","O6<<F4>>":GOSUB *WINCLS2
  614. 6130     KILL ""+T$+"\SET.DAT"
  615. 6140     OPEN ""+T$+"\SET.DAT" FOR OUTPUT AS #1
  616. 6150       WRITE #1,SET2(1),SET2(2),SET2(3)
  617. 6160     CLOSE
  618. 6170  RETURN
  619. 6180 *初期設定'============================
  620. 6190   FO=(WAKUJ(ER)\100)+1
  621. 6200   C=WC(ER):N%=1
  622. 6210  FOR I=1 TO 6
  623. 6220   SP%(I)=BHAN(B1(I)):PW(I)=SOUK(S1(1)):BT(I)=0:SC(I)=PS(I)
  624. 6230    IF WS=1 THEN KS%=F(1)*FO
  625. 6240    IF WS=2 THEN KS%=S(1)*FO
  626. 6250    IF WS=3 THEN KS%=O(1)*FO
  627. 6260   RAK=INT(9.8!*(WAKUJ(ER)/100)):E=1
  628. 6270  NEXT
  629. 6280  RETURN
  630. 6290 *VS:VS=1:EG=0
  631. 6300  RETURN
  632. 6310 *初期:T=0:EG=0'--------------------------
  633. 6320   MX(1)=15 :MY(1)=15 :MZ(1)=1
  634. 6330   MX(2)=305:MY(2)=224:MZ(2)=1
  635. 6340   MX(3)=305:MY(3)=15 :MZ(3)=1
  636. 6350   MX(4)=15 :MY(4)=224:MZ(4)=1
  637. 6360   MX(5)=160:MY(5)=224:MZ(5)=1
  638. 6370   MX(6)=160:MY(6)=15 :MZ(6)=1
  639. 6380  FOR I=1 TO 6:G%(I)=0:NEXT
  640. 6390  VX(1)=160:VY(1)=240
  641. 6400  RETURN
  642. 6410 *範囲限定'----------------------------
  643. 6420  FOR A=1 TO 6
  644. 6430   IF MX(A)<0  THEN MX(A)=MAXX1
  645. 6440   IF MY(A)<0  THEN MY(A)=MAXY1
  646. 6450   IF MZ(A)<1   THEN MZ(A)=1
  647. 6460   IF MX(A)>319 THEN MX(A)=MAXX2
  648. 6470   IF MY(A)>239 THEN MY(A)=MAXY2
  649. 6480   IF MZ(A)>140 THEN PCMPLAY SEI:MZ(A)=140
  650. 6490  NEXT
  651. 6500  RETURN
  652. 6510 *管理'------------------------------
  653. 6520  FOR I=1 TO 6
  654. 6530   IF MZ(I)>1 THEN MZ(I)=MZ(I)-RAK
  655. 6540  NEXT:EG=0
  656. 6550  FOR I=1 TO 6
  657. 6560   IF G%(I)=1 THEN EG=EG+1
  658. 6570   IF G%(I)=0 THEN WINNER=I
  659. 6580  NEXT
  660. 6590  IF EG=5 THEN GOTO *EG
  661. 6600  RETURN
  662. 6610 *時間管理'----------------------------
  663. 6620   T=TIME-OT
  664. 6630   IF T>TM THEN *EG
  665. 6640  RETURN
  666. 6650 *MMISA'------------------------------
  667. 6660 IF BTN1=2 THEN
  668. 6670  FOR P=1 TO MISAK(MISA)
  669. 6680  MMISS(P)=0
  670. 6690    MSX(P)=MX(1)-6+P*2
  671. 6700    MSY(P)=MY(1)-6+P*2
  672. 6710    MSZ(P)=MZ(1)
  673. 6720  NEXT
  674. 6730 ENDIF
  675. 6740 FOR O=1 TO MISAK(MISA)
  676. 6750  IF MMISS(O)=1 THEN 6960
  677. 6760  I=O
  678. 6770  IF I>N THEN I=1
  679. 6780  IF G%(I)=1  THEN I=I+1:IF I>N THEN I=I-2
  680. 6790  IF G%(I)=1  THEN I=I-1
  681. 6800  IF G%(I)=1  THEN IF I<0 THEN I=1:GOTO 6780
  682. 6810  IF I=1 THEN I=2:GOTO 6780
  683. 6820  IF MX(I)=MSX(O) THEN MSX(O)=MSX(O)
  684. 6830  IF MY(I)=MSY(O) THEN MSY(O)=MSY(O)
  685. 6840  IF MZ(I)=MSZ(O) THEN MSZ(O)=MSZ(O)
  686. 6850  IF MX(I)-MSX(O)>0 THEN MSX(O)=MSX(O)+MISAH(MISA) ELSE MSX(O)=MSX(O)-MISAH(MISA)
  687. 6860  IF MY(I)-MSY(O)>0 THEN MSY(O)=MSY(O)+MISAH(MISA) ELSE MSY(O)=MSY(O)-MISAH(MISA)
  688. 6870  IF MZ(I)-MSZ(O)>0 THEN MSZ(O)=MSZ(O)+MISAH(MISA) ELSE MSZ(O)=MSZ(O)-MISAH(MISA)
  689. 6880  IF MSX(O)<MAXX1 THEN MSX(O)=MAXX2
  690. 6890  IF MSY(O)<MAXY1 THEN MSY(O)=MAXY2
  691. 6900  IF MSZ(O)<1   THEN MSZ(O)=1
  692. 6910  IF MSX(O)>MAXX2 THEN MSX(O)=MAXX1
  693. 6920  IF MSY(O)>MAXY2 THEN MSY(O)=MAXY1
  694. 6930  IF MX(I)>MSX(O)-MISAH(MISA) THEN IF MX(I)<MSX(O)+MISAH(MISA) THEN IF MY(I)>MSY(O)-MISAH(MISA) THEN IF MY(I)<MSY(O)+MISAH(MISA) THEN IF MZ(I)>MSZ(O)-MISAH(MISA) THEN IF MZ(I)<MSZ(O)+MISAH(MISA) THEN GOSUB *処理
  695. 6940  MST(O)=MST(O)+1
  696. 6950  IF MST(O)=MISAT(MISA) THEN MMISS(O)=1
  697. 6960 NEXT
  698. 6970 RETURN
  699. 6980 *OOKISA
  700. 6990     IF SL(I)>270               THEN OKI(I)=1
  701. 7000     IF 270>SL(I) AND SL(I)>220 THEN OKI(I)=2
  702. 7010     IF 220>SL(I) AND SL(I)>180 THEN OKI(I)=3
  703. 7020     IF 150>SL(I) AND SL(I)>120 THEN OKI(I)=4
  704. 7030     IF 120>SL(I) AND SL(I)>100 THEN OKI(I)=5
  705. 7040     IF 100>SL(I) AND SL(I)>90  THEN OKI(I)=6
  706. 7050     IF 90 >SL(I) AND SL(I)>80  THEN OKI(I)=7
  707. 7060     IF 80 >SL(I) AND SL(I)>70  THEN OKI(I)=8
  708. 7070     IF 70 >SL(I) AND SL(I)>60  THEN OKI(I)=10
  709. 7080     IF 60 >SL(I) AND SL(I)>50  THEN OKI(I)=30
  710. 7090     IF 50 >SL(I) AND SL(I)>40  THEN OKI(I)=40
  711. 7100     IF 40 >SL(I) AND SL(I)>30  THEN OKI(I)=50
  712. 7110     IF 30 >SL(I) AND SL(I)>20  THEN OKI(I)=65
  713. 7120     IF 20 >SL(I) AND SL(I)>10  THEN OKI(I)=80
  714. 7130     IF 10 >SL(I) AND SL(I)>1   THEN OKI(I)=90
  715. 7140     IF SL(I)=0                 THEN OKI(I)=100
  716. 7150  RETURN
  717. 7160 *MOKI
  718. 7170     IF MSL(O)>100 THEN MOKI(O)=1
  719. 7180     IF 100>MSL(O) AND MSL(O)>70  THEN MOKI(O)=2
  720. 7190     IF 70 >MSL(O) AND MSL(O)>50  THEN MOKI(O)=3
  721. 7200     IF 50 >MSL(O) AND MSL(O)>45  THEN MOKI(O)=4
  722. 7210     IF 45 >MSL(O) AND MSL(O)>40  THEN MOKI(O)=5
  723. 7220     IF 35 >MSL(O) AND MSL(O)>30  THEN MOKI(O)=6
  724. 7230     IF 30 >MSL(O) AND MSL(O)>25  THEN MOKI(O)=7
  725. 7240     IF 25 >MSL(O) AND MSL(O)>20  THEN MOKI(O)=8
  726. 7250     IF 20 >MSL(O) AND MSL(O)>10  THEN MOKI(O)=9
  727. 7260     IF 10 >MSL(O) AND MSL(O)>5  THEN MOKI(O)=10
  728. 7270     IF 5 >MSL(O) AND MSL(O)>1   THEN MOKI(O)=15
  729. 7280     IF MSL(O)=0                 THEN MOKI(O)=20
  730. 7290  RETURN
  731. 7300 *SET_UP
  732. 7310  RETURN
  733. 7320 *SYS確認
  734. 7330   IF SET2(1)=1 THEN MAXX1=15:MAXY1=15:MAXX2=305:MAXY2=155
  735. 7340   IF SET2(1)=2 THEN MAXX1=305:MAXY1=155:MAXX2=15:MAXY2=15
  736. 7350   IF SET2(2)=1 THEN VIEW_P=1
  737. 7360   IF SET2(2)=2 THEN VIEW_P=2
  738. 7370  RETURN
  739.